home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / apps / 9 / applic / finance.bas < prev    next >
Encoding:
BASIC Source File  |  1986-04-17  |  11.1 KB  |  235 lines

  1. 0     ' AUTHOR:  Gordon Burnham       Date Created  01-02-86
  2. 1     TITLE$=" GORDON'S FINANCIAL COOKBOOK "
  3. 2     TITLE$=CHR$(32)+CHR$(174)+CHR$(174)+TITLE$
  4. 3     TITLE$=TITLE$+CHR$(175)+CHR$(175)+CHR$(32)
  5. 4     POKE SYSTAB+24,1
  6. 5     A#=GB
  7. 6     GINTIN=PEEK(A#+8)
  8. 7     POKE GINTIN+0,PEEK(SYSTAB+8)
  9. 8     POKE GINTIN+2,2
  10. 9     S#=GINTIN+4
  11. 10    TITLE$=TITLE$+CHR$(0)
  12. 11    POKE S#,VARPTR(TITLE$)
  13. 12    GEMSYS(105)
  14. 13    POKE SYSTAB+24,0
  15. 40    FULLW 2:CLEARW 2:GOTOXY 0,0
  16. 50    DOLLAR$="$$###,###.##":SDOLLAR$="$$###.##"
  17. 52    FULLW 2:CLEARW 2:GOTOXY 0,0:GOTO 100
  18. 60    ? :? :INPUT "     Any more calculations (Y/N) ",A$
  19. 62    IF LEFT$(A$,1)<>"Y" AND LEFT$(A$,1)<>"y" THEN 100
  20. 64    ON NBR GOTO 500,600,700,800,900,1000,1100,1500,2000,3000,2500
  21. 70    ? :? "              SEND A COPY TO THE PRINTER (Y/N)";:INPUT A$
  22. 72    IF LEFT$(A$,1)<>"Y" AND LEFT$(A$,1)<>"y" THEN 60
  23. 74    ? :? "    Press <RETURN> when printer is ready.....";:INPUT A$
  24. 76    ON HERE GOTO 1270,1710,2170
  25. 100   FULLW 2:CLEARW 2
  26. 110   GOTOXY 4,3:? "1> Future Value of Annuity"
  27. 120   GOTOXY 38,3:? "7> Straight-line Depreciation"
  28. 130   GOTOXY 4,4:? "2> Future Value of a Deposit"
  29. 140   GOTOXY 38,4:? "8> Declining-balance Depreciation"
  30. 150   GOTOXY 4,5:? "3> Present Value of an Amount"
  31. 160   GOTOXY 38,5:? "9> Mortgage Schedule"
  32. 170   GOTOXY 4,6:? "4> Payment Calculator"
  33. 180   GOTOXY 37,6:? "10> Mortgage with Second"
  34. 190   GOTOXY 4,7:? "5> Break-even Analysis"
  35. 200   GOTOXY 37,7:? "11> Remaining Balance"
  36. 210   GOTOXY 4,8:? "6> Economic Order Quantity"
  37. 220   GOTOXY 37,8:? "12> Exit this Program"
  38. 390   GOTOXY 20,14:INPUT "YOUR CHOICE >",A$:A=VAL(A$)
  39. 400   ON A GOTO 500,600,700,800,900,1000,1100,1500,2000,3000,2500,450
  40. 410   OUT 2,7:OUT 2,7:OUT 2,7:OUT 2,7:GOTO 100
  41. 450   CLEARW 2:END: ' CLEARW 3:END
  42. 500   CLEARW 2:GOTOXY 0,0:NBR=1
  43. 510   ? :? "        FUTURE VALUE OF AN ANNUITY"
  44. 520   ? :INPUT "   Size of each payment: ",P
  45. 530   INPUT "          Interest rate: ",I
  46. 540   INPUT "        Number of years: ",Y
  47. 550   INPUT "      Payments per year: ",N:?
  48. 560   I=I/100:I=I/N:X=INT((P*(((1+I)^(Y*N))-1)/I)*100)/100
  49. 570   ? "    THE FUTURE VALUE IS";:? USING DOLLAR$;X
  50. 580   GOTO 60
  51. 600   CLEARW 2:GOTOXY 0,0:NBR=2
  52. 610   ? :? "        FUTURE VALUE OF AN DEPOSIT"
  53. 620   ? :INPUT "       Original deposit: ",P
  54. 630   INPUT "          Interest rate: ",I
  55. 640   INPUT "        Number of years: ",Y
  56. 650   INPUT "       Periods per year: ",N:?
  57. 660   I=I/100:I=I/N:X=INT((P*(1+I)^(Y*N))*100)/100
  58. 670   ? "    THE FUTURE VALUE IS";:? USING DOLLAR$;X
  59. 680   GOTO 60
  60. 700   CLEARW 2:GOTOXY 0,0:NBR=3
  61. 710   ? :? "        PRESENT VALUE OF FUTURE AMOUNT"
  62. 720   ? :INPUT "  Amount wanted in future: ",P
  63. 730   INPUT "            Interest rate: ",I
  64. 740   INPUT "          Number of years: ",Y
  65. 750   INPUT "         Periods per year: ",N:?
  66. 760   I=I/100:I=I/N:X=INT((P*(1+I)^-(Y*N))*100)/100
  67. 770   ? "    THE PRESENT VALUE IS";:? USING DOLLAR$;X
  68. 780   GOTO 60
  69. 800   CLEARW 2:GOTOXY 0,0:NBR=4
  70. 810   ? :? "            PAYMENT CALCULATION"
  71. 820   ? :INPUT "        Amount borrowed: ",P
  72. 830   INPUT "   Annual interest rate: ",I
  73. 850   INPUT "     Number of payments: ",N:?
  74. 860   I=I/1200:X=INT((P/((1-((1+I)^-N))/I))*100)/100
  75. 870   ? "    THE MONTHLY PAYMENT IS";:? USING SDOLLAR$;X
  76. 880   GOTO 60
  77. 900   CLEARW 2:GOTOXY 0,0:NBR=5
  78. 910   ? :? "            BREAK EVEN POINT"
  79. 920   ? :INPUT "            Fixed costs: ",P
  80. 930   INPUT "          Cost per unit: ",I
  81. 940   INPUT "            Sales price: ",N
  82. 950   Y=N-I:X=INT((((P/Y)+0.99)*100)/100):?
  83. 960   ? "    THE BREAK-EVEN POINT IS";X
  84. 970   GOTO 60
  85. 1000  CLEARW 2:GOTOXY 0,0:NBR=6
  86. 1010  ? :? "       ECONOMIC ORDER QUANTITY"
  87. 1020  ? :INPUT "          Cost to order: ",P
  88. 1030  INPUT "      Annual units used: ",I
  89. 1040  INPUT "     Unit carrying cost: ",N
  90. 1050  X=INT(((SQR((2*I*P)/N)+0.5)*10)/10):?
  91. 1060  ? "    THE ECONOMIC ORDER QUANTITY IS";X
  92. 1070  GOTO 60
  93. 1100  CLEARW 2:GOTOXY 0,0:NBR=7
  94. 1110  ? :? "                  STRAIGHT-LINE DEPRECIATION":?
  95. 1120  INPUT "                 Name of item: ",N$
  96. 1130  INPUT "                 Cost of item: ",P
  97. 1140  INPUT "               Residual value: ",I
  98. 1150  INPUT "         Years of useful life: ",N
  99. 1160  INPUT "           Year item acquired: ",Y:A=Y
  100. 1170  ? "               -------------------------------------------------"
  101. 1180  ? ," YEAR","   DEPR($)","ACCUM.DEP.","VALUE($)"
  102. 1190  ? "               -------------------------------------------------"
  103. 1200  X=INT(((P-I)/N)*100)/100:Z=X
  104. 1210  L=P-Z:? ,A,:? USING DOLLAR$;X,Z,L
  105. 1220  IF A=Y+N-1 THEN 1240
  106. 1230  Z=Z+X:A=A+1:GOTO 1210
  107. 1240  HERE=1:GOTO 70
  108. 1270  FOR LOOP=1 TO 6:LPRINT:NEXT LOOP
  109. 1280  LPRINT CHR$(27)+CHR$(14);"       STRAIGHT-LINE DEPRECIATION"
  110. 1290  LPRINT :LPRINT TAB(33-(LEN(N$)/2));"NAME OF ITEM: ";N$
  111. 1300  LPRINT TAB(29);"COST OF ITEM:";:LPRINT USING DOLLAR$;P
  112. 1310  LPRINT TAB(27);"RESIDUAL VALUE:";:LPRINT USING DOLLAR$;I
  113. 1320  LPRINT TAB(21);"YEARS OF USEFUL LIFE:  ";N
  114. 1330  LPRINT TAB(28);"YEAR ACQUIRED:  ";Y
  115. 1340  LPRINT TAB(15);"-------------------------------------------------------"
  116. 1350  LPRINT TAB(15);"YEAR";TAB(30);"DEPR($)";TAB(45);"ACCM.DEP.";TAB(62);"VALUE"
  117. 1360  LPRINT TAB(15);"-------------------------------------------------------"
  118. 1370  X=INT(((P-I)/N)*100)/100:Z=X:A=Y
  119. 1380  L=P-Z:LPRINT TAB(14);A;
  120. 1390  LPRINT USING DOLLAR$;TAB(26);X;TAB(42);Z;TAB(58);L
  121. 1400  IF A=Y+N-1 THEN 1420
  122. 1410  Z=Z+X:A=A+1:GOTO 1380
  123. 1420  LPRINT TAB(15);"-------------------------------------------------------"
  124. 1430  LPRINT :LPRINT :LPRINT TAB(25);"......END OF LISTING."
  125. 1440  LPRINT CHR$(12):GOTO 60
  126. 1500  CLEARW 2:GOTOXY 0,0:NBR=8
  127. 1510  ? :? "                DECLINING-BALANCE DEPRECIATION":?
  128. 1520  INPUT "                 Name of item: ",N$
  129. 1530  INPUT "      Depreciation percentage: ",P
  130. 1540  INPUT "                   Book value: ",H:H1=H
  131. 1550  INPUT "          Years to depreciate: ",Y
  132. 1560  INPUT "                Year acquired: ",Y1:Z=Y1
  133. 1570  ? "               -------------------------------------------------"
  134. 1580  ? ,"    ","   DEPREC.","  ACCUM."," BOOK"
  135. 1590  ? ," YEAR","   EXPENSE","  DEPREC.","VALUE($)"
  136. 1600  ? "               -------------------------------------------------"
  137. 1610  ? ,"         Beginning value--------------";:? USING DOLLAR$;TAB(53);H
  138. 1620  A=0:P=P/100:Z=Y1:H=H1
  139. 1630  D=INT((P*H)*100)/100
  140. 1640  A=D+A:L=INT((H-(H*P))*100)/100
  141. 1650  ? TAB(15);Z;:? USING DOLLAR$;TAB(28);D;TAB(41);A;TAB(53);L
  142. 1660  Z=Z+1:H=H-D:IF Z>=Y1+Y THEN 1680
  143. 1670  GOTO 1630
  144. 1680  HERE=2:GOTO 70
  145. 1710  FOR LOOP=1 TO 6:LPRINT:NEXT LOOP
  146. 1720  LPRINT CHR$(27)+CHR$(14);"     DECLINING-BALANCE DEPRECIATION"
  147. 1730  LPRINT :LPRINT TAB(33-(LEN(N$)/2));"NAME OF ITEM: ";N$
  148. 1740  LPRINT TAB(16);"DEPRECIATION PERCENTAGE: ";P*100;"%"
  149. 1750  LPRINT TAB(29);"BOOK VALUE:";:LPRINT USING DOLLAR$;H1
  150. 1760  LPRINT TAB(20);"YEARS TO DEPRECIATE: ";Y
  151. 1770  LPRINT TAB(15);"-------------------------------------------------------"
  152. 1780  LPRINT TAB(30);"DEPREC.";TAB(45);"ACCUM.";TAB(62);"BOOK"
  153. 1790  LPRINT TAB(15);"YEAR";TAB(30);"EXPENSE";TAB(45);"DEPREC.";TAB(62);"VALUE"
  154. 1800  LPRINT TAB(15);"-------------------------------------------------------"
  155. 1810  A=0:Z=Y1:H=H1
  156. 1820  D=INT((P*H)*100)/100
  157. 1830  A=D+A:L=INT((H-(H*P))*100)/100
  158. 1840  LPRINT TAB(14);Z;:LPRINT USING DOLLAR$;TAB(26);D;TAB(40);A;TAB(58);L
  159. 1850  Z=Z+1:H=H-D:IF Z>=Y1+Y THEN 1870
  160. 1860  GOTO 1820
  161. 1870  LPRINT TAB(15);"-------------------------------------------------------"
  162. 1880  LPRINT :LPRINT :LPRINT TAB(25);"......END OF LISTING."
  163. 1890  LPRINT CHR$(12):GOTO 60
  164. 2000  CLEARW 2:GOTOXY 0,0:NBR=9:D1=0:Z1=0
  165. 2010  ? :? "                    MORTGAGE SCHEDULE":?
  166. 2020  INPUT "              Amount borrowed: ",P
  167. 2030  INPUT "         Annual interest rate: ",I
  168. 2040  INPUT "           Term of loan (yrs): ",N
  169. 2050  INPUT "            Year for schedule: ",Y
  170. 2060  I1=I/1200:L=1:H=INT((P/((1-((1+I1)^-(N*12)))/I⇧100)/100
  171. 2070  Y1=(Y-1)*12:Y1=Y1+1:X=INT((H*((1-((1+I1)^-((N*12)-Y1)))/I1))*100)/100
  172. 2080  ? "               -------------------------------------------------"
  173. 2090  ? ," MONTH","  PRINCIPAL","  INTEREST","BALANCE"
  174. 2100  ? "               -------------------------------------------------"
  175. 2110  ? ,"         Beginning value--------------";:? USING DOLLAR$;TAB(53);P
  176. 2120  Z=INT((X*I1)*100)/100:D=H-Z:X=X-D
  177. 2130  ? TAB(17);Y1;:? USING DOLLAR$;TAB(28);D;TAB(41);Z;TAB(53);X
  178. 2140  D1=D1+D:Z1=Z1+Z:Y1=Y1+1:IF L=12 THEN 2160
  179. 2150  L=L+1:GOTO 2120
  180. 2160  ? "               -------------------------------------------------"
  181. 2162  ? TAB(15);"TOTALS";:? USING DOLLAR$;TAB(28);D1;TAB(41);Z1
  182. 2164  HERE=3:GOTO 70
  183. 2170  FOR LOOP=1 TO 6:LPRINT:NEXT LOOP
  184. 2180  LPRINT CHR$(27)+CHR$(14);"           MORTGAGE SCHEDULE"
  185. 2190  LPRINT: LPRINT TAB(27);"AMOUNT OF MORTGAGE: ";P
  186. 2200  LPRINT TAB(23);"TERM OF MORTGAGE (YRS):";N
  187. 2210  LPRINT TAB(28);"YEAR FOR SCHEDULE: ";Y
  188. 2220  LPRINT TAB(15);"-------------------------------------------------------"
  189. 2230  LPRINT TAB(15);"MONTH";TAB(30);"PRINCIPAL";TAB(45);"INTEREST";TAB(62);"BALANCE"
  190. 2240  LPRINT TAB(15);"-------------------------------------------------------"
  191. 2250  I1=I/1200:L=1:H=INT((P/((1-((1+I1)^-(N*12)))/I1))*100)/100
  192. 2260  Y1=(Y-1)*12:Y1=Y1+1:X=INT((H*((1-((1+I1)^-((N*12)-Y1)))/I1))*100)/100
  193. 2270  LPRINT,"         Beginning value--------------";:LPRINT USING DOLLAR$;TAB(58);P
  194. 2280  Z=INT((X*I1)*100)/100:D=H-Z:X=X-D
  195. 2290  LPRINT TAB(15);Y1;:LPRINT USING DOLLAR$;TAB(26);D;TAB(41);Z;TAB(58);X
  196. 2300  Y1=Y1+1:IF L=12 THEN 2320
  197. 2310  L=L+1:GOTO 2280
  198. 2320  LPRINT TAB(15);"-------------------------------------------------------"
  199. 2330  LPRINT TAB(15);"TOTALS";:LPRINT USING DOLLAR$;TAB(26);D1;TAB(41);Z1
  200. 2340  LPRINT:LPRINT:LPRINT TAB(25);"..............END OF LISTING"
  201. 2350  LPRINT CHR$(12):GOTO 60
  202. 2500  CLEARW 2:GOTOXY 0,0:NBR=11
  203. 2510  ? :? "             MORTGAGE REMAINING BALANCE":?
  204. 2520  INPUT "              Amount of Mortgage: ",A
  205. 2530  INPUT "            Annual interest rate: ",I:I=I/1200
  206. 2540  INPUT "              Term of loan (yrs): ",Y
  207. 2550  INPUT "                  Payment number: ",D
  208. 2560  P=INT((A/((1-((1+I)^-(Y*12)))/I))*100)/100
  209. 2570  X=INT((P*((1-((1+I)^-((12*Y)-D)))/I))*100)/100
  210. 2580  ? :? "               THE MONTHLY PAYMENT IS";
  211. 2590  ? USING DOLLAR$;P
  212. 2600  ? :? "        BALANCE AFTER";D;"PAYMENTS IS";
  213. 2610  ? USING DOLLAR$;X
  214. 2620  GOTO 60
  215. 2690  ? :? "        BALANCE AFTER";D;"PAYMENTS IS";
  216. 3000  CLEARW 2:GOTOXY 0,0:NBR=10
  217. 3010  ? :? "           MORTGAGE PAYMENT WITH SECOND":?
  218. 3020  INPUT "               Purchase Price: ",A
  219. 3030  INPUT "               Cash Available: ",Z
  220. 3040  INPUT "               First Mortgage: ",Z1
  221. 3050  INPUT "               First Rate (%): ",I:I=I/1200
  222. 3060  INPUT "             First Term (yrs): ",Y
  223. 3070  INPUT "              Second Rate (%): ",I1:I1=I1/1200
  224. 3080  INPUT "            Second Term (yrs): ",Y1
  225. 3090  X=A-Z:H=INT((Z1/((1-((1+I)^-(12*Y)))/I))*100)/100
  226. 3100  L=X-Z1:H1=INT((L/((1-((1+I1)^-(Y1*12)))/I1))*100)/100:P=H+H1
  227. 3110  ? :? TAB(15);"FIRST MORTGAGE PAYMENT:";
  228. 3120  ? USING DOLLAR$;TAB(38);H
  229. 3130  ? TAB(14);"SECOND MORTGAGE PAYMENT:";
  230. 3140  ? USING DOLLAR$;TAB(38);H1
  231. 3150  ? TAB(14);"------------------------------------"
  232. 3160  ? TAB(14);"TOTAL MORTGAGE PAYMENTS:";
  233. 3170  ? USING DOLLAR$;TAB(38);P
  234. 3180  GOTO 60
  235. ə